/*
* This file is a part of the open-eBackup project.
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at
* http://mozilla.org/MPL/2.0/.
*
* Copyright (c) [2024] Huawei Technologies Co.,Ltd.
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*/
#ifndef IO_COMMON_DEF_H
#define IO_COMMON_DEF_H
#include <string>
#include "common/JsonHelper.h"
#include "common/CleanMemPwd.h"

namespace Module {
struct HTTP_PROXY_INFO {
    HTTP_PROXY_INFO() : Enable(false)
    {}
    ~HTTP_PROXY_INFO()
    {
        CleanMemoryPwd(UserPassword);
    }
    bool Enable;
    std::string HostName;
    std::string Port;
    std::string UserName;
    std::string UserPassword;

    BEGIN_SERIAL_MEMEBER
    SERIAL_MEMEBER(Enable)
    SERIAL_MEMEBER(HostName)
    SERIAL_MEMEBER(Port)
    SERIAL_MEMEBER(UserName)
    SERIAL_MEMEBER(UserPassword)
    END_SERIAL_MEMEBER
};

struct SPEED_UP_INFO {
    SPEED_UP_INFO():Enable(false){}
    bool Enable;
    std::string Method;

    BEGIN_SERIAL_MEMEBER
    SERIAL_MEMEBER(Enable)
    SERIAL_MEMEBER(Method)
    END_SERIAL_MEMEBER
};
} // namespace Module
#endif  // IO_COMMON_DEF_H
